/*
 * Ebene.h
 *
 *  Created on: Feb 14, 2011
 *      Author: alki
 */

#ifndef EBENE_H_
#define EBENE_H_

#include "Vektor.h"


/**
 * Klasse Ebene: repräsentiert eine Ebene im IR^3
 */

class Ebene {
public:
	Ebene();
	virtual ~Ebene();

	/**
	 * Setzt den Stützvektor
	 */
	void setPos(Vektor pos) { this->m_pos=pos; }

	/**
	 * Setzt die beiden Richtungsvektoren
	 */
	void setDir(Vektor dir1,Vektor dir2) { this->m_dir1=dir1; this->m_dir2=dir2; }

	/**
	 * Setzt die beiden Richtungsvektoren anhand eines Normalenvektors
	 */
	void setDir(Vektor n) { this->m_dir1=this->m_pos.CrossProduct(n); this->m_dir2=this->m_dir1.CrossProduct(n); }

private:
	friend class Gerade;

	Vektor m_pos;
	Vektor m_dir1;
	Vektor m_dir2;
};

#endif /* EBENE_H_ */
